Programming for Malleability with Hybrid MPI-2 and OpenMP – Experiences with a Simulation Program for Global Water Prognosis
نویسندگان
چکیده
This paper reports on our experiences in parallelizing WaterGAP, an originally sequential C++ program for global assessment and prognosis of water availability. The parallel program runs on a heterogeneous SMP cluster and combines different parallel programming paradigms: First, at its outer level, it uses master/slave communication implemented with MPI. Second, within the slave processes, multiple threads are spawned by OpenMP directives to exploit data parallelism. Time measurements show that the hybrid scheme pays off. It adapts to the heterogeneity of the cluster by using multiple threads only for the largest tasks and mapping these to multiprocessor nodes. Third, the program is malleable, which has been accomplished with the dynamic process management facilities of MPI-2, based on the MPICH2 implementation. In particular, it is possible to increase the number of processes while the program is running. Malleability is an important feature in both batch systems and grid environments. We discuss the support that MPI-2 provides for malleability.
منابع مشابه
Parallelization of the Treecode Algorithm for N-Body Simulation Using MPI, Hybrid, and GridRPC Programming Paradigms
This dissertation describes the parallelization of the treecode algorithm for N-Body problem and performance comparison among three different parallel programming paradigms, MPI, hybrid MPI-OpenMP, and GridRPC. In N-Body simulation, the specific routine for calculating the forces on the bodies which accounts for upwards of 90% of the cycles in typical computations is eminently suitable for obta...
متن کاملOptimizing the Advanced Accelerator Simulation Framework Synergia Using OpenMP
Synergia is an advanced accelerator framework widely used by accelerator community. However, its performance suffers significantly from the high communication requirement. In this paper, we address this issue by replacing the flat MPI programming model with the hybrid OpenMP+MPI programming model. We describe in detail how the code has been parallelized in OpenMP and what the challenges are. Th...
متن کاملEarly Experiments with the OpenMP/MPI Hybrid Programming Model
The paper describes some very early experiments on new architectures that support the hybrid programming model. Our results are promising in that OpenMP threads interact with MPI as desired, allowing OpenMP-agnostic tools to be used. We explore three environments: a “typical” Linux cluster, a new large-scale machine from SiCortex, and the new IBM BG/P, which have quite different compilers and r...
متن کاملHybrid Programming Using OpenSHMEM and OpenACC
With high performance systems exploiting multicore and accelerator-based architectures on a distributed shared memory system, heterogenous hybrid programming models are the natural choice to exploit all the hardware made available on these systems. Previous efforts looking into hybrid models have primarily focused on using OpenMP directives (for shared memory programming) with MPI (for inter-no...
متن کاملParallel computing using MPI and OpenMP on self-configured platform, UMZHPC.
Parallel computing is a topic of interest for a broad scientific community since it facilitates many time-consuming algorithms in different application domains.In this paper, we introduce a novel platform for parallel computing by using MPI and OpenMP programming languages based on set of networked PCs. UMZHPC is a free Linux-based parallel computing infrastructure that has been developed to cr...
متن کامل